UML 作图时间线:从零到交付的实战顺序
本手册不要求画全部 14 种 UML 图。实战只用 8 种,按 6 个阶段推进,约 3 周完成从需求到部署的全部模型文档。所有图使用 PlantUML 语法——8 种图全部原生支持,无需近似语法。
相比 Mermaid 版本的优势:PlantUML 原生支持用例图、活动图、组件图、部署图、包图、gantt 图,不再需要用
flowchart 或 classDiagram 近似替代。
阶段一搞清边界(1-3 天)
1. 用例图 — 回答"系统给谁用、做什么"
用例图示例:在线商城
产出:一张用例图 + 每个用例 3 句话描述的用例规约。
用例规约模板:基本流(正常场景)| 备选流(异常场景)| 前置/后置条件
阶段二梳理流程(1-3 天)
2. 活动图 — 回答"每个核心用例怎么走"
核心用例不超过 3 个,带泳道。
活动图示例:提交订单(带泳道)
产出:核心用例的活动图(一张图讲一个用例的主流程 + 异常分支)。
阶段三识别关键对象状态(半天)
3. 状态机图 — 回答"核心对象有哪些状态、怎么切换"
状态机图示例:订单生命周期
产出:1-3 个关键对象的状态机。
阶段四建模核心领域(2-5 天)
4. 类图 — 回答"系统有哪些核心概念、它们什么关系"
类图示例:订单域模型
产出:一张核心域模型类图(≤20 个类),标注关键属性和关系类型。
5. 包图 — 回答"核心代码怎么分层、分模块"
包图示例:订单模块分层依赖
产出:包图(含依赖方向),禁用循环依赖。
阶段五设计交互细节(3-7 天)
6. 序列图 — 回答"一个操作内部怎么协作"
为 3-5 个关键操作 各画一张序列图。
序列图示例:提交订单完整协作
产出:关键操作的序列图(一张图一个场景,不合并成功/失败)。
阶段六确定模块与部署(1-2 天)
7. 组件图 — 回答"系统有哪些服务、接口怎么定义"
组件图示例:微服务拓扑
产出:组件图,标注每个组件的供给接口与依赖接口。
8. 部署图 — 回答"系统跑在什么机器上、怎么连"
部署图示例:三层物理拓扑
产出:部署图,标注节点规格(可选)和通信协议。
完整时间线总览
Gantt 图:3 周 6 阶段总览
一句话速记
| 你要做什么 | 画什么 |
|---|---|
| 搞清楚要做什么 | 用例图 |
| 看懂业务流程 | 活动图 |
| 核心对象状态 | 状态机图 |
| 领域模型 | 类图 |
| 代码分层 | 包图 |
| 某个操作怎么协作 | 序列图 |
| 微服务怎么拆 | 组件图 |
| 部署到哪台机器 | 部署图 |
铁律
- 不是 14 种全画。实战只画这 8 种,足够覆盖从需求到上线的全部阶段。
- 一张图一个焦点。类图不超过 20 个类,序列图一个场景一张。
- 先画再完美。草图对齐理解,细节后补。
- 图要进 git。PlantUML 是纯文本,天然支持 diff 和 code review。
- 8 种图 PlantUML 全部原生支持。不需要 flowchart 近似,语义精确。
PlantUML 支持对照
| UML 图 | PlantUML 语法 | 原生支持 |
|---|---|---|
| 用例图 | usecase + actor | 完整 |
| 活动图 | start / if / |泳道| | 完整 |
| 状态机图 | [*] + 状态转移 | 完整 |
| 类图 | class + 关系 | 完整 |
| 包图 | package + 依赖 | 完整 |
| 序列图 | actor / participant + 消息 | 完整 |
| 组件图 | component + () | 完整 |
| 部署图 | node + artifact | 完整 |